PART 0 · 개념 기초

RDB vs GraphDB vs 온톨로지
세 가지 세계관 비교

데이터를 다루는 방법에는 세 가지 근본적으로 다른 세계관이 있습니다. 각각이 무엇을 중요하게 여기는지 이해하면, 어떤 상황에 무엇을 써야 하는지 자연스럽게 알 수 있습니다.

1. 세 가지 세계관

같은 데이터도 어떤 눈으로 보느냐에 따라 완전히 다른 구조가 됩니다.

RDB

표(Table)로 세상을 본다

모든 것을 행과 열로 정리합니다. 정확하고 빠르지만, 관계를 표현하려면 별도의 계산이 필요합니다.

GraphDB

연결(Connection)로 세상을 본다

모든 것을 노드와 관계로 표현합니다. 연결 자체가 데이터이기 때문에, 복잡한 관계망을 직관적으로 탐색할 수 있습니다.

온톨로지

의미(Meaning)로 세상을 본다

개념과 개념 사이의 의미적 관계를 정의합니다. 명시되지 않은 사실도 추론 규칙을 통해 자동으로 도출할 수 있습니다.

2. 같은 데이터, 세 가지 표현

아래의 사실을 세 가지 방식으로 저장해봐요.

원시 사실

홍길동은 개발자다.
홍길동은 카카오에 근무한다.
카카오는 IT 기업이다.

RDB — 테이블로 저장

사람 테이블: id=1, name=홍길동, job=개발자
회사 테이블: id=1, name=카카오, type=IT기업
근무 테이블: person_id=1, company_id=1

"홍길동이 IT 기업에 다니는가?"를 알려면 세 테이블을 JOIN해서 직접 계산해야 합니다.
관계는 외래키(FK)로 연결되지만, 의미는 개발자가 쿼리로 직접 만들어야 합니다.

GraphDB (Neo4j) — 노드와 관계로 저장

(홍길동:사람) —[:근무]→ (카카오:회사)
(카카오:회사) —[:유형]→ (IT기업:업종)

관계가 데이터 구조 안에 이미 담겨 있습니다.
그래프 탐색만으로 "홍길동 → 카카오 → IT기업" 경로를 바로 따라갈 수 있습니다.

온톨로지 (OWL/RDF) — 의미와 규칙으로 저장

홍길동 rdf:type :개발자
홍길동 :근무 카카오
카카오 rdf:type :IT기업
규칙: IT기업에 근무하는 사람은 IT종사자다

위의 규칙 하나만 정의해두면, 온톨로지 엔진이 자동으로
"홍길동은 IT종사자다"를 추론해서 새로운 사실을 자동으로 만들어냅니다.

3. 세 가지 비교표
구분 RDB GraphDB (Neo4j) 온톨로지 (OWL/RDF)
핵심 질문 "이 데이터가 있는가?" "이 데이터는 어떻게 연결되는가?" "이 데이터는 무엇을 의미하는가?"
데이터 단위 행(Row) · 열(Column) 노드(Node) · 엣지(Edge) 트리플(Subject · Predicate · Object)
관계 표현 외래키 + JOIN 관계(Edge) 자체가 1등 시민 Predicate(술어)로 의미적 관계 정의
추론 능력 없음 제한적 (그래프 탐색 수준) 있음 (논리 규칙 기반 자동 추론)
스키마 유연성 낮음 (고정 스키마) 높음 (자유로운 노드/관계 추가) 높음 (개방 세계 가정)
질의 언어 SQL Cypher SPARQL
대표 도구 MySQL, PostgreSQL Neo4j Protégé, Apache Jena
잘 맞는 상황 정형 데이터, 대량 트랜잭션 소셜 네트워크, 추천 시스템, 경로 탐색 지식 표현, 의미 검색, AI 추론
4. GraphDB와 온톨로지는 어떻게 다른가?

둘 다 "그래프"처럼 생겼지만, 목적이 다릅니다.

GraphDB — "빠른 연결 탐색"이 목표

Neo4j 같은 GraphDB는 성능에 최적화되어 있어요.
수백만 개의 노드와 관계를 빠르게 탐색하는 것이 핵심입니다.
"A와 B는 몇 단계로 연결되는가?", "A의 친구의 친구는 누구인가?" 같은 질문에 강합니다.
추론보다는 탐색에 강점이 있습니다.

온톨로지 — "의미와 추론"이 목표

OWL/RDF 기반 온톨로지는 지식의 의미를 형식적으로 정의합니다.
"개발자는 IT종사자의 하위 개념이다", "두 개체가 같은 존재임을 선언한다" 같은
논리적 규칙을 정의하면, 엔진이 명시되지 않은 사실을 자동으로 도출합니다.
탐색보다는 추론에 강점이 있습니다.

실무에서는 둘을 함께 사용하기도 합니다.
Neo4j로 빠른 그래프 탐색을 하고, 온톨로지로 의미 레이어를 덧붙이는 방식이에요.
우리가 공부할 GraphRAG도 이 두 개념을 혼합해서 활용합니다.

5. 언제 무엇을 쓸까?

RDB를 선택할 때

데이터가 정형화되어 있고, 스키마가 거의 변하지 않는 경우
주문 관리, 회원 정보, 재고 관리 같은 트랜잭션 중심 업무
빠른 대량 읽기/쓰기가 필요한 경우

GraphDB를 선택할 때

데이터 사이의 관계망 탐색이 핵심인 경우
소셜 네트워크, 추천 시스템, 사기 탐지, 지식 그래프 구축
"A에서 B까지 몇 단계?" 같은 경로 기반 질의가 잦은 경우

온톨로지를 선택할 때

개념 사이의 의미적 관계와 규칙을 명시적으로 정의해야 하는 경우
의료, 법률, 생명과학처럼 도메인 지식을 형식화해야 하는 분야
LLM에 연결할 지식 베이스를 구축하는 경우 (GraphRAG의 핵심)

6. 핵심 정리